package cn.web.web_module.service;

import cn.itcast.pojo.*;
import cn.web.web_module.entity.*;
import com.github.pagehelper.PageInfo;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @Author: 张松
 * @Description:
 * @Date: Created in 15:29 2020/8/17
 * @Modified By:
 */
public interface BusinessDataService {

    /**
     *
     * @Description: 每个月用户量
     *
     * @auther: 张松
     * @date: 15:20 2020/8/17
     * @param: []
     * @return: cn.itcast.util.ResponseEntity
     *
     */
     List<MonthData> EveryMonthAddUser();

    /**
     *
     * @Description: 全部用户数
     *
     * @auther: 张松
     * @date: 15:20 2020/8/17
     * @param: []
     * @return: cn.itcast.util.ResponseEntity
     *
     */
     List<MonthData> AllUserData();

    /**
     *
     * @Description: 每月订单量
     *
     * @auther: 张松
     * @date: 15:22 2020/8/17
     * @param: []
     * @return: cn.itcast.util.ResponseEntity
     *
     */
     List<MonthData> EveryMonthAddOrder();

    /**
     *
     * @Description: 累计订单量
     *
     * @auther: 张松
     * @date: 15:26 2020/8/17
     * @param: []
     * @return: cn.itcast.util.ResponseEntity
     *
     */
     List<MonthData> AllOrderData();

     /**
      *
      * @Description: 每个月收多少重量
      *
      * @auther: 张松
      * @date: 12:34 2020/8/18
      * @param: []
      * @return: java.util.List<cn.web.web_module.entity.MonthData>
      *
      */
     List<MonthData> EveryMonthWeight();

     /**
      *
      * @Description: 累计多少货
      * 
      * @auther: 张松
      * @date: 12:43 2020/8/18
      * @param: []
      * @return: java.util.List<cn.web.web_module.entity.MonthData>
      *
      */
     List<MonthData> AllWeight();

    /**
     *
     * @Description: 每个月各个品类多少货
     *
     * @auther: 张松
     * @date: 12:43 2020/8/18
     * @param: []
     * @return: java.util.List<cn.web.web_module.entity.MonthData>
     *
     */

     List<MonthData> EvenMothProduct();

    /**
     *
     * @Description: 每个月平均多少货
     *
     * @auther: 张松
     * @date: 12:43 2020/8/18
     * @param: []
     * @return: java.util.List<cn.web.web_module.entity.MonthData>
     *
     */
     List<MonthData> AverageWeight();

    /**
     *
     * @Description: 每个月用户收入多少钱
     *
     * @auther: 张松
     * @date: 12:43 2020/8/18
     * @param: []
     * @return: java.util.List<cn.web.web_module.entity.MonthData>
     *
     */
     List<MonthData> UserEarning();

     /**
      *
      * @Description: 每个月多少单,平均每单多少重量
      *
      * @auther: 张松
      * @date: 12:42 2020/8/20
      * @param: []
      * @return: java.util.Map<java.lang.String,java.lang.Object>
      *
      */
     List<MonthData> EvenMonthAvgWeight();

    /**
     *
     * @Description: 骑手每日收益
     *
     * @auther: 张松
     * @date: 8:20 2020/8/25
     * @param: []
     * @return: cn.itcast.util.ResponseEntity
     *
     */
     List<order> horesemanEvenDayEarnings();

     /**
      *
      * @Description: 查看用户上三次成交价格
      *
      * @auther: 张松
      * @date: 8:59 2020/9/3
      * @param: [openid]
      * @return: java.util.List<cn.itcast.pojo.orderItem>
      *
      */
     List<orderItem> selectPrice(String openid);

     /**
      *
      * @Description: 根据日期查找骑手的经营数据
      *
      * @auther: 张松
      * @date: 18:03 2020/9/3
      * @param: [timeDate]
      * @return: void
      *
      */
     Map<String,Object> selectHorsemanData(Date timeDate);

    /**
     *
     * @Description: 查看公司昨日收入状况
     *
     * @auther: 张松
     * @date: 19:11 2020/9/10
     * @param: []
     * @return: java.util.List<cn.itcast.pojo.orderItem>
     *
     */
    List<earnings> selectCompanyDayEarning();


    /**
     *
     * @Description: 查看今日骑手回收电器数量
     *
     * @auther: 张松
     * @date: 19:11 2020/9/10
     * @param: []
     * @return: java.util.List<cn.itcast.pojo.orderItem>
     *
     */
    Integer selectHorsemanTodayAmount(String openId);
    /**
     *
     * @Description: 查看昨日骑手回收电器数量
     *
     * @auther: 张松
     * @date: 19:11 2020/9/10
     * @param: []
     * @return: java.util.List<cn.itcast.pojo.orderItem>
     *
     */
    Integer selectHorsemanYesterdayAmount(String openId);



    /**
     *
     * @Description: 查找公司详细数据
     *
     * @auther: 张松
     * @date: 10:01 2021/3/6
     * @param: []
     * @return: java.util.List<cn.web.web_module.entity.HorsemanDetailedRecord>
     *
     */
    PageInfo selectHorsemanDetailedRecord(Map<String,String> parameters);


    List<String> selectIncumbencyAllHorsemanName();

    /**
     *
     * @Description: 查找骑手对应的OrderID
     *
     * @auther: 张松
     * @date: 15:40 2021/3/11
     * @param: []
     * @return: java.util.List<cn.web.web_module.entity.OrderInfoOV>
     *
     */
    List<OrderInfoOV> selectHorsemanOrderId(Integer orderId);



    /**
     *
     * @Description: 查找骑手充值记录
     *
     * @auther: 张松
     * @date: 9:42 2021/3/12
     * @param: [rechargeNumber]
     * @return: java.util.List<cn.itcast.pojo.recharge>
     *
     */
    List<RechargeInfoOV> selectHorsemanRechargeInfo(String rechargeNumber);

    /**
     *
     * @Description: 查找骑手的提现记录
     *
     * @auther: 张松
     * @date: 16:18 2021/3/12
     * @param: []
     * @return: java.util.List<cn.web.web_module.entity.WithdrawInfoOV>
     *
     */
    List<WithdrawInfoOV> selectHorsemanWithdrawInfo(Integer withdrawId);



    /**
     *
     * @Description: 查找骑手的出货记录
     *
     * @auther: 张松
     * @date: 16:18 2021/3/12
     * @param: []
     * @return: java.util.List<cn.web.web_module.entity.WithdrawInfoOV>
     *
     */
    List<PackageOrderInfoOV> selectHorsemanPackageOrderId(Integer packageOrderId);


    /**
     *
     * @Description: 导出骑手的各项数据Excel
     *
     * @auther: 张松
     * @date: 11:32 2021/3/15
     * @param: []
     * @return: boolean
     *
     */
    List<HorsemanDetailedRecord> downloadHorsemandetailedRecordExcel(Map<String, String> parameters);


    /**
     *
     * @Description: 骑手昨天的出货记录
     *
     * @auther: 张松
     * @date: 15:21 2021/4/14
     * @param: []
     * @return: cn.itcast.util.ResponseEntity
     *
     */
    List<packageOrderItem> horsemanEvenDayPackageOrder();

    /**
     *
     * @Description: 骑手收货与出货的交货误差
     *
     * @auther: 张松
     * @date: 14:30 2021/4/20
     * @param: []
     * @return: java.util.List<cn.web.web_module.entity.HorsemanContrast>
     *
     */
    List<HorsemanContrast> horsemanContrast();
}
